perm filename PTEST.PAS[TEX,ALS] blob sn#613093 filedate 1981-09-20 generic text, type T, neo UTF8
(*$R80,S8000,X11,T-,G+,D-,O-,Y+*)
program PRINTO;
type asciiCode = 0..127;
var fiba: integer;
    fibb: integer;
    fibc: integer;
    fibs: integer;
    k: integer;

procedure PrintOctal(n: integer);
var i: integer;
    k: integer;
    s: array [0..10] of asciiCode;
    msb: boolean;
    mbb: boolean;
begin
msb:=false;
mbb:=false;
if n<0 then begin n:=-n; msb:=true end; 
for k:=10 downto 0 do
    begin
    i:=n mod 8;
    if k=0 then
	begin
	if msb then
	    begin
	    if i>3 then i:=7-i		    else
	        begin 
	        if (i mod 2)=0 then i:=3 else i:=2   		end
	    end
	else i:=(i mod 4)
	end
    else
	begin
	if msb=true then
	    begin
	    if mbb=true then i:= 7-i 		    else
		begin
		if i>0 then
		    begin
		    i:=8-i;
		    mbb:=true;              		    end
		end
	    end;
	end;
      case i of
	0: s[k]:=0;
	1: s[k]:=1;
	2: s[k]:=2;
	3: s[k]:=3;
	4: s[k]:=4;
	5: s[k]:=5;
	6: s[k]:=6;
	7: s[k]:=7;
      end;
    n:= n div 8;
    end;
k:=0; while (k<10) and (s[k]=0) do k:=k+1;
for k:=k to 10 do write(s[k]:1)
end;

begin
fiba:=0;
fibb:=1;
for k:=1 to 20 do
    begin
    fibc:=fiba+fibb;
    fibs:=fibc*fibc;
    writeln(' ');
    write(fibs);
    write(' ');
    printoctal(fibs);
    write(' ');
    fibs:=-fibs;
    printoctal(fibs);
    fiba:=fibb;
    fibb:=fibc;
    end;
end.